On deriving data parallel code from a functional program

نویسندگان

  • Patrice Quinton
  • Sanjay V. Rajopadhye
  • Doran Wilde
چکیده

We discuss a translation methodology for transforming a high level algorithmic speciication written in Alpha to an imperative data parallel language. We informally introduce the Alpha language with the aid of an example and explain how it is adapted for doing static analysis and transformation. An Alpha program can be naively compiled 11] using applicative caching. Our compilation method makes incremen-tal transformations on the abstract syntax tree of an Alpha program in order to make eeciency and performance improvements over the naive code and optimize it for a given architecture. The compilation steps described include scheduling, alignment, partitioning, allocation, loop nest generation, and code generation and they are illustrated with an example.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Message-Passing Distributed Memory Parallel Algorithm for a Dual-Code Thin Layer, Parabolized Navier-Stokes Solver

In this study, the results of parallelization of a 3-D dual code (Thin Layer, Parabolized Navier-Stokes solver) for solving supersonic turbulent flow around body and wing-body combinations are presented. As a serial code, TLNS solver is very time consuming and takes a large part of memory due to the iterative and lengthy computations. Also for complicated geometries, an exceeding number of grid...

متن کامل

Deriving Imperative Code from Functional Programs Patrice Quinton, Sanjay Rajopadhye, Doran Wilde

Alpha is a data parallel functional language which has the capability of specifying algorithms at a very high level. Our ultimate objective is to generate eecient parallel imperative code from an Alpha program. In this paper, we discuss the related problem of generating eecient single processor imperative code. Analysis techniques that were developed for the synthesis of systolic arrays are ext...

متن کامل

Compiler Technology for Parallel Scientiic Computation

There is a need for compiler technology that, given the source program, will generate eecient parallel codes for diierent architectures with minimal user involvement. Parallel computation is becoming indispensable in solving large-scale problems in science and engineering. Yet, the use of parallel computation is limited by the high costs of developing the needed software. To overcome this diicu...

متن کامل

Deriving Efficient Parallel Implementations of Algorithms Operating on General Sparse Matrices Using Automatic Program Transformation

We show how efficient implementations can be derived from highlevel functional specifications of numerical algorithms using automatic program transformation. We emphasize the automatic tailoring of implementations for manipulation of sparse data sets. Execution times are reported for a conjugate gradient algorithm.

متن کامل

A Thought on Refactoring Java Loops Using Java 8 Streams

Java 8 has introduced a new abstraction called a stream to represent an immutable sequence of elements and to provide a variety of operations to be executed on the elements in series or in parallel. By processing a collection of data in a declarative way, it enables one to write more concise and clean code that can also leverage multi-core architectures without needing a single line of multithr...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995